﻿//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>

//求三角形
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    int num = 1;
//    scanf("%d", &n);
//    for (int i = 0; i < n; i++)//正方形i行
//    {
//        for (int j = 0; j < n; j++)//第j个数
//        {
//            printf("%02d", n*i+j+1);
//        }
//        printf("\n");
//    }
//    printf("\n");
//    int m = 1;
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 1; j <= n - i - 1; j++)
//        {
//            printf("  ");
//        }
//        int k = 0;
//        while(k<=i)
//        {
//            k++;
//            printf("%02d", m);
//            m++;
//        }
//        printf("\n");
//    }
//   
//    return 0;
//}

//阶乘之和
//#include<stdio.h>
//int main()
//{
//    int n;
//    double S, k;
//    S = 0;
//    scanf("%d", &n);
//    for (int j = 1; j <= n; j++)
//    {
//        k = 1;
//        for (int i = 1; i <= j; i++)
//        {
//            k *= i;
//        }
//        S += k;
//    }
//    printf("%.0f", S);
//    return 0;
//}
//#include <stdio.h>
//
//int main() {
//    int n;
//    long long S = 0; // 使用 long long 类型以避免溢出
//    long long k;
//
//    printf("请输入一个正整数 n: ");
//    scanf("%d", &n);
//
//    if (n < 1) {
//        printf("请输入一个大于0的整数。\n");
//        return 1; // 返回错误代码
//    }
//
//    for (int j = 1; j <= n; j++) {
//        k = 1;
//        for (int i = 1; i <= j; i++) {
//            k *= i;
//        }
//        S += k;
//    }
//
//    printf("从 1 到 %d 的阶乘之和是: %lld\n", n, S); // 使用 %lld 输出 long long 类型
//    return 0;
//}

//
// 
// 金币
//#include<stdio.h>
//int main()
//{
//    int k;
//    int count = 0;
//    int day = 1;
//    scanf("%d", &k);
//    for (int i = 1; day <= k; i++)
//    {
//        for (int j = 1; j <= i; j++)
//        {
//
//            if (day > k)
//                break;
//            count += i;
//            day++;
//        }
//    }
//    printf("%d", count);
//    return 0;
//}

//求极差
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    int i = 0;
//    scanf("%d\n", &n);
//    int arr[100] = { 0 };
//    int j = 0;
//    int k = 0;
//    while (i <= (n - 1))
//    {
//        scanf("%d", &arr[i]);
//        i++;
//    }
//    for (j = 0; j <= (n - 1); j++)
//    {
//        for (k = 0; k < n - 1 - j; k++)
//        {
//            if (arr[k] > arr[k + 1])//从小到大排序
//            {
//                int temp = arr[k];
//                arr[k] = arr[k + 1];
//                arr[k + 1] = temp;
//            }
//        }
//    }
//    printf("%d", arr[n - 1] - arr[0]);
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    int i = 0;
//    scanf("%d\n", &n);
//    int arr[50] = { 0 };
//    int j = 0;
//    int k = 0;
//    while (i <= (n - 1))
//    {
//        scanf("%d", &arr[0]);
//        i++;
//    }
//    for (j = 0; j < (n - 1); j++)
//    {
//        for (k = 0; k <= n - 1 - j; k++)
//        {
//            if (arr[k] > arr[k + 1])//从小到大排序
//            {
//                int temp = arr[k];
//                arr[k] = arr[k + 1];
//                arr[k + 1] = temp;
//            }
//        }
//    }
//    for (int j = 0; j< n; j++)
//    {
//        printf("%d", arr[j]);
//    }
//
//    return 0;
//
//}

//最长连号
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    int arr[10];
//    scanf("%d", &n);
//    int len[10];
//    int k = 0;
//    for (int i = 0; i < n; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//    for (int i = 0; i < n - 1; i++)
//    {
//        int count = 1;
//        int j = i;
//        while (arr[j] + 1 == arr[j + 1])
//        {
//            count++;
//            j++;
//        }
//        len[k] = count;
//        k++;
//    }
//    int max = len[0];
//    int q = 1;
//    while (q <= k-1)
//    {
//        if (len[q] > max)
//            max = len[q];
//    }
//    printf("%d", max);
//    return 0;
//}


//质因数分解
//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int yinshu[50] = { 0 };
//	int j = 0;
//	for (int i = 2; i < n; i++)//先求出所有因数
//	{
//		if (n % i == 0)
//		{
//			yinshu[j] = i;
//			j++;
//		}
//		
//	}
//	//yinshu一数组里面放的是n所有的因数
//	//再求出因数里面的质数 一共j个
//	int m = 0;
//	int q = 0;
//	int zhishu[50] = { 0 };
//	for (int i = 0; i < j; i++)
//	{
//		int count = 0;
//		for (int k = 2; k <= sqrt(yinshu[m]); k++)
//		{
//			if (yinshu[m] % k == 0)
//				count++;
//			
//		}
//		if (count == 0)
//		{
//			zhishu[q] = yinshu[m];
//			q++;
//		}
//		m++;
//	}
//	//zhishu里面放了所有的质因数
//	//现在求最大的质因数 应该是数组里面的最后一个数，因为是最后一个放进去的
//	printf("%d", zhishu[q - 1]);
//	return 0;
////}
//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int max = 0;
//	for (int i = 2; i * i <= n; i++)
//	{
//		if (n % i == 0)
//			max = n / i;
//	}
//	printf("%d", max);
//}

//Davor
//#include<stdio.h>
//int main()
//{
//    int n, x, k;
//    scanf("%d", &n);
//    for (int i = 1; i <= 100; i++)
//    {
//        if ((n - 364 * i) <= 0)//i当成x 求的就是k的值
//            break;
//        if ((n - 364 * i) % 1092 == 0)//保证k为整数
//            x = i;//因为i是从小到大的 所以最后进来的i是最大的 即此时x的值就是最大的
//    }
//    k = (n - 364 * x) / 1092;
//    printf("%d\n%d", x, k);
//    return 0;
//}

//打分
//#include<stdio.h>
//int main()
//{
//	int n = 0;//n个评委
//	int score[1000] = { 0 };//评委打的分
//	int sum = 0;
//	double average = 0;
//	scanf("%d\n", &n);
//	for (int i = 0; i < n; i++)
//	{
//		scanf("%d", &score[i]);
//	}
//	//score中是评委打分 给分数排序 从小到大
//	for (int i = 0; i < n - 1; i++)
//	{
//		for (int j = 0; j < n - i - 1; j++)
//		{
//			if (score[j] > score[j + 1])//从小到大排序
//			{
//				int temp = score[j];
//				score[j] = score[j + 1];
//				score[j + 1] = temp;
//			}
//		}
//	}
//	//现在已经从小到大排好序了
//	for (int i = 1; i < n-1; i++)
//	{
//		sum += score[i];
//	}
//	average = sum / 1.0/(n - 2);
//	printf("%.2lf", average);
//	return 0;
//}

//津津的储蓄计划
//#include<stdio.h>
//int main()
//{
//
//	return 0;
//}

////回文质数
//#include<stdio.h>
//int main()
//{
//	int a, b;
//	int k = 0;
//	scanf("%d %d", &a, &b);
//	//先求质数
//	int zhishu[100000] = { 0 };
//	for (int i = a; i <= b; i++)
//	{
//		int count = 0;
//		for (int j = 2; j <i; j++)
//		{
//			if (i % j == 0)
//				count++;
//			else
//				count += 0;
//		}
//		if (count == 0)
//		{
//			zhishu[k] = i;
//			k++;
//		}
//	}
//	//一共有k个质数存在zhishu里面
//	//接下来判断是否为回文数
//	for (int i = 0; i < k; i++)//一个数一个数判断 判断他倒置数和它本身一不一样
//	{
//		
//		if (zhishu[i] / 10 != 0)
//		{
//			int num = zhishu[i];
//			int new_num = 0;
//			while (1)
//			{
//				int m = zhishu[i] % 10;
//				new_num += m;
//				zhishu[i] /= 10;
//				if (zhishu[i] != 0)
//					new_num *= 10;
//				else
//					break;
//			}
//			if (new_num == num)
//				printf("%d\n", num);
//		}
//		
//		
//		else
//		{
//		    printf("%d\n", zhishu[i]);
//
//  		}
//	}
//
//	return 0;
//}
//


